]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
dateMenu: Only show forecasts
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 22 Nov 2019 21:44:42 +0000 (22:44 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Sat, 23 Nov 2019 00:13:05 +0000 (01:13 +0100)
We currently always start with the current weather info, then append
forecasts. This is slightly confusing, as the only hint that the
first item is special is the past (and potentially "odd") time.

Stop doing that and base all items on forecasts.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1927

js/ui/dateMenu.js

index ec75653d87bf27031bd2b63f20a6d9d4dba810fa..a081c12f5b0e615d12cc9b8164e14b956d29e502 100644 (file)
@@ -309,26 +309,24 @@ class WeatherSection extends St.Button {
     }
 
     _getInfos() {
-        let info = this._weatherClient.info;
-        let forecasts = info.get_forecast_list();
+        let forecasts = this._weatherClient.info.get_forecast_list();
 
         let now = GLib.DateTime.new_now_local();
-        let current = info;
-        let infos = [info];
+        let current = GLib.DateTime.new_from_unix_local(0);
+        let infos = [];
         for (let i = 0; i < forecasts.length; i++) {
             let [ok_, timestamp] = forecasts[i].get_value_update();
             const datetime = GLib.DateTime.new_from_unix_local(timestamp);
             if (now.difference(datetime) > 0)
                 continue; // Ignore earlier forecasts
 
-            [ok_, timestamp] = current.get_value_update();
-            const currenttime = GLib.DateTime.new_from_unix_local(timestamp);
-            if (datetime.difference(currenttime) < GLib.TIME_SPAN_HOUR)
+            if (datetime.difference(current) < GLib.TIME_SPAN_HOUR)
                 continue; // Enforce a minimum interval of 1h
 
-            current = forecasts[i];
-            if (infos.push(current) == MAX_FORECASTS)
+            if (infos.push(forecasts[i]) == MAX_FORECASTS)
                 break; // Use a maximum of five forecasts
+
+            current = datetime;
         }
         return infos;
     }